/**
 *  Author： xxw
 *  Date ： 2021/10/13
 */

// ------- 由于 js 无法直接文件读取和写入，需要借助input和a标签读取写入 -------
if (!document.getElementById("divBox")) {
	console.log("开始创建节点");
	var box = document.createElement('div');
	box.setAttribute("id", "divBox");
	var bodyIframe = document.getElementsByTagName("body")[0].appendChild(box);
	// 添加读取文件按钮和模拟写入文件按钮
	document.getElementById("divBox").innerHTML = "<input id='inputBox' type='file' accept='text/plain' onchange='readFile(event)'><br><a id='link'></a>";
}

// 添加点击监听事件， 用于文件写入
document.querySelector("#link").addEventListener('click', () => {
	writeFile('#link', 'Encrypted.txt')
})

// ------- 创建标签结束 -------

// 定义全局变量
var res = "";
var arr = [];
  
// ------- debug 状态下无法点击网页标签，采用自动点击弹起文件选择框 -------
document.getElementById("inputBox").click();

// 文件读取
var readFile = function (event){
	console.log("开始读取！");
	var input = event.target;
	var reader = new FileReader();
	reader.onload = function () {
		if(reader.result) {
			// 按 \r\n 分隔成数组元素
			arr = reader.result.split("\r\n");
			// 遍历调用加密
			console.log("开始调用加密算法进行加密!");
			arr.forEach((item, index) => {
				res += {调用加密函数放这!} + "\r\n";
			});
      		// 点击 a 标签调用 blob 对象模拟文件写入
			document.getElementById("link").click();
		}
	}
	reader.readAsText(input.files[0]);
}

// ------- 由于 js 直接写入文件，需要借助下载按钮 + Blob 对象进行写入 -------
// 文件写入
var writeFile = function (el, fileName) {
	console.log("文件写入！");
	var a = document.querySelector(el);
	// 创建二进制对象
	var blob = new Blob([res]);
	a.download = fileName;
	a.href = URL.createObjectURL(blob);
} 